package com.aqie.easy.tree;

import com.aqie.easy.structure.TreeNode;

/**
 * 606 二叉树 创建字符串
 * 需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对
 * 前序遍历: 根 左 右
 */
public class Tree2str {
    StringBuilder sb = new StringBuilder();
    public String tree2str(TreeNode t) {
        preorder(t);
        return sb.toString();
    }

    private void preorder(TreeNode node){
        if (node == null) return;
        sb.append(node.val);
        if (node.left != null) {
            sb.append("(");
            preorder(node.left);
            sb.append(")");
        }
        if(node.left == null && node.right != null){
            sb.append("()");
        }
        if (node.right != null) {
            sb.append("(");
            preorder(node.right);
            sb.append(")");
        }
    }
}
